home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / asm_msc1.arc / EX51.ASM < prev    next >
Assembly Source File  |  1988-11-20  |  896b  |  24 lines

  1. TITLE  Add to Unordered List (EX51.ASM)
  2.           PAGE      ,132
  3. OUR_CODE  SEGMENT   PARA 'CODE'
  4.       PUBLIC    ADD_TO_UL
  5. ADD_TO_UL PROC      FAR
  6.           ASSUME    CS:OUR_CODE
  7.       CLD                     ;Make DF=0, to scan forward
  8.       PUSH        DI             ;Save starting address
  9.       PUSH        CX
  10.       MOV        CX,ES:[DI]         ;Fetch word count
  11.       ADD        DI,2         ;Make DI point to 1st data el.
  12. REPNE      SCASW                     ;Value already in list?
  13.       POP        CX
  14.       JNE         ADD_IT         
  15.       POP        DI             ; Yes.  Restore starting addr.
  16.       RET                 ;  and exit.
  17. ADD_IT:   MOV        ES:[DI],AX       ; No.  Add it to end of list,
  18.       POP        DI             ;  then update element count
  19.       INC        WORD PTR ES:[DI]
  20.       RET                 ;  and exit.
  21. ADD_TO_UL ENDP
  22. OUR_CODE  ENDS
  23.          END       ADD_TO_UL
  24.